package com.chenyun.store.pojo;


import com.alibaba.fastjson2.JSON;
import com.chenyun.common.enums.StoreTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 文件存储配置类
 * @author: Lonni
 * @date: 2023/11/2 0002 11:05
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class StoreDTO implements Serializable {


    private StoreTypeEnum typeEnum;
    /**
     * oss的链接地址 local不用配置
     */
    private String endpoint;
    /**
     * 用户名 local不用配置
     */
    private String accessKey;
    /**
     * 密码  local不用配置
     */
    private String secretKey;
    /**
     * 域名 local不用配置
     */
    private String domain;
    /**
     * 存储桶 local不用配置
     */
    private String bucket;

    /**
     * 根目录 保存文件的路径
     */
    private String baseDir;

    /**
     * 预览链接的过期时间 单位/天  <=7
     */
    private Integer expireTime;

    private Boolean https;
    /**
     * 地区
     */
    private String region;

    /**
     * 桶权限类型(0private 1public 2custom)
     */
    private String accessPolicy;
    private Boolean enable;


    public static void main(String[] args) {

        List<StoreDTO> list = new ArrayList<>();
        list.add(StoreDTO.builder()
                .baseDir("/lonni/im/")
                .domain("127.0.0.1/oss/")
                .https(false)
                .typeEnum(StoreTypeEnum.LOCAL)
                .enable(true)
                .build());

        list.add(StoreDTO.builder()
                .baseDir("/lonni/im/")
                .domain("127.0.0.1/oss/")
                .accessKey("minioadmin")
                .bucket("lonni-im")
                .secretKey("minioadmin")
                .endpoint("127.0.0.1:9000")
                .expireTime(10)
                .accessPolicy("1")
                .enable(false)
                .https(false)
                .typeEnum(StoreTypeEnum.MINIO)
                .build());


        System.out.println(JSON.toJSONString(list));


    }



}



